//
// Created by lfm on 25-4-19.
//

#ifndef BOOKMANAGER_H
#define BOOKMANAGER_H

#include "Book.h"
#include <fstream>
#include <vector>

// BookManager 类用于管理书籍列表，支持添加、删除、修改和查找书籍等功能
class BookManager
{
public:
    // 构造函数，初始化 BookManager 对象
    BookManager();
    // 添加一本书到书籍列表中
    void addBook(const Book &book);
    // 根据 ISBN 删除一本书，返回删除是否成功
    bool deleteBook(const string &isbn);
    // 根据 ISBN 修改一本书的信息，返回修改是否成功
    bool modifyBook(const string &isbn, const Book &newBook);
    // 根据 ISBN 查找一本书，返回指向该书的指针或 nullptr 如果未找到
    Book *findBook(const string &isbn);
    // 显示所有书籍的信息
    void displayBooks() const;
    // 将书籍列表保存到文件中
    void saveToFile() const;
    // 从文件中加载书籍列表
    void loadFromFile();

private:
    // 存储书籍的向量
    vector<Book> books;
    // 定义存储书籍数据的文件名
    static const string BOOK_DATA_FILE;
};

#endif // BOOKMANAGER_H